const loaderUtils = require('loader-utils');
/**
 * 1.不管什么样的模块，最左侧的loader一定要返回一个JS模块代码
 * 创建一个style标签，把CSS文本放在style标签里面，然后插入页面
 * @param {*} css 
 */
function loader(css) {
    this.data; // 和pitch上的参数data是同一个
    /*  let moduleScript = `
         let style = document.createElement('style');
         style.innerHTML = ${JSON.stringify(css)};
         document.head.appendChild(style);
     `;
     return moduleScript; */
}
/**
 * 
 * @param {*} remainingRequest 剩下的请求 [less-loader,index.less]
 * @param {*} previousRequest 之前的请求 []
 * @param {*} data 当前loader的数据对象 {}
 */
loader.pitch = function (remainingRequest,previousRequest,data) {
    //字符串，less-loader绝对路径!index.les绝地路径

    //C:\aproject\zhufengwebpack202111\5.loader\loaders\less-loader.js!C:\aproject\zhufengwebpack202111\5.loader\src\index.less
    console.log(remainingRequest);

    //把remainingRequest绝对路径变成可以在本模块内加载的相对路径，并且在路径前加!!，只加载行内模块
    //"!!../loaders/less-loader.js!./index.less" !!只要行内
    let request = JSON.stringify(
        this.utils.contextify(this.context, "!!"+remainingRequest)
    );
    console.log(request); // "!!../loaders/less-loader.js!./index.less"，行内内联loader


    let moduleScript = `
         let style = document.createElement('style');
         style.innerHTML =  require(${request});
         document.head.appendChild(style);
     `;
    return moduleScript;
}
 
module.exports = loader;
